本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。


マイクロソフト西暦 2000 年対応情報開示リソース センター ホーム

よく寄せられる質問

製品ガイド
(日本語)


西暦 2000 年問題に対するマイクロソフトの考え方

技術文書(ホワイト ペーパー)

そのほかの情報
マイクロソフト西暦 2000 年対応情報開示リソース センター


Visual Basic for Applications 6.0  (Japanese)

製品の概要
製品名: Visual Basic for Applications
バージョン: 6.0
カテゴリ: 対応
オペレーティング システム: 32 ビット版 Win
言語: 日本語版 発売日: 1999 年 3 月 25 日
対応期間: -
必要なソフトウェア: なし
依存する製品: Windows 95、または Windows NT4 (Service Pack 3 以降を推奨)
依存するクロック: システム クロック
最終更新日: 1999 年 5 月 10 日
製品の詳細

Visual Basic for Applications (VBA) 6.0

 このツールで、Microsoft の西暦 2000 年対応文書の内容に適合したアプリケーションをビルド可能か

可能。

日付の処理

Visual Basic for Applications 6.0 と共に出荷された製品には、Excel 2000、Access 2000、Word 2000、Outlook 2000、PowerPoint 2000、Project 2000、FrontPage 2000 などがあります。

Visual Basic でも、共通のプログラミング言語 (VBA Version 6) が使用されます。このため、日付をテストするには、日付を処理する組み込みコマンドをテストします。日付を処理する組み込み関数には、次のものがあります。

Now ()

CDate()

CVDate()

DateValue()

Date()

Date$()

Format()

DateAdd()

DateDiff()

DatePart()

IsDate()

Day()

Month()

Weekday()

FormatDateTime()

Year()

VBA は、以下の方法で暗黙的に文字列が日付に変換されます。

CStr(VT_DATE が含まれるバリアント)

A$ = VT_DATE が含まれるバリアント

Dim datevar as Date;: A$ = datevar

Get #1, nPosition, theDate (theDate が VT_DATE として定義されている場合)

表示する日付と時刻は、オペレーティング システムのクロック、ユーザーによる入力、日付リテラル (例 : #1999/01/01#)、またはユーザー データ ファイルから取得できます。日付は、浮動小数点の数値の一部として保存され、小数点の左側の値が 1899 年 12 月 30 日以降の数を表します。たとえば Visual Basic の Format() 関数を使用すると、日付が下 2 桁の形式で表示されることがありますが、値は 4 桁の長い形式で保存されています。

下 2 桁の西暦だけを指定すると、年の最初の 2 桁は以下の処理規則に従って判定されます。

下 2 桁の西暦の処理

日付に下 2 桁の西暦のみが指定された場合、次の規則に従って上 2 桁の西暦が取得されます。

  • 下 2 桁が 00 〜 29 年の場合は、上 2 桁は "2000 〜 2029年" と解釈されます。
  • 下 2 桁が 30 〜 99 年の場合は、上 2 桁は "1930 〜 1999年" と解釈されます。

これらの規則は、Windows 95、Windows 98 および Windows NT4 でのデフォルトの設定です。ただし、VBA では OLE オートメーションを使用して日付が解釈されます。そのため、OLE オートメーションの規則に従って、下 2 桁の西暦が処理されます。上記に示す 100 年ウィンドウは、コントロール パネルの設定を変更することでデフォルト設定を変更することができます。

詳しくは、以下の OLE オートメーションの Web サイトを参照してください。
http://www.asia.microsoft.com/japan/year2k/product/user_view67698EN.htm

西暦 2000 年以降の日付処理の一般的な問題

ユーザー定義関数は、日付処理に関するエラーの最大要因です。関数が正しく定義されていないと、問題が生じることがあります。

文字列として保存した日付は、適切な形式で入力されていないと予期しない結果を引き起こすことがあります。「年/月/日」の順番を変更しても有効な日付形式になる場合は、VBA が文字列を日付として解釈します。たとえば、「年/月/日」の順番を変更しても、3/30/98 (1998 年 3 月 30 日) と 3/1/87 (87 年 3 月 1 日) は日付として有効と見なされます。

一般的には、日付値を保存する場合、カスタム VBA ルーチンではユーザー文字列ではなく、組み込みの Date データ型を使うようにしてください。

テスト時のガイドラインと推奨事項

MSDN オンライン ライブラリに、Visual Studio および Visual Basic を使った西暦 2000 年問題対応アプリケーションの開発に関する情報があります。http://msdn.microsoft.com/library/techart/msdn_vs6y2k.htm を参照してください。このサイトで説明されているガイドラインは、VBA および VB に同様に適用されます。

VBA で記述されたアプリケーションをテストする場合は、特に以下の問題に注意してください。

  1. ユーザー定義関数 : 多くのアプリケーションで、日付をさまざまな方法で操作するために Visual Basic for Applications で記述されたユーザー定義関数が使われています。このような関数の多くでは、日付値を文字列として保存するか、あるいは Put ステートメントを使ってディスク ファイルにデータを書き込みます。これらの値の操作が不適切であると、マイクロソフトが実施した 2000 年問題対応テストの範囲を超える日付処理上の問題が発生することがあります。
  2. 日付の不正入力を捕捉するエラー処理ルーチンがあると、上記の日付使用のエラーが問題を引き起こすことがあります。文字列形式の日付が入力されても VBA はめったにエラーを生成しないので、エラー処理ルーチンが呼び出されることはほとんどありません。このような場合は、不正な日付であることを通知するランタイム エラーに頼るのではなく、コードを使用して、データを検証するためのプログラミングが必要になります。

製品ガイドに戻る

 

カテゴリの記号について:
* ユーザーが必要な操作を行うことで対応できる製品。
修正プログラムのロードや文書の参照など、指示された操作を行う必要があります。

# マイクロソフトの対応基準に対して許容範囲の差異がある製品。
製品の主要な機能 (データ保全性など) や安定性 (信頼性など) に影響を与えない程度に限られます。

+ 頒布予定の修正プログラムで対応できる製品。
修正プログラムが公開された時点で、できるだけ早期の対応が必要です。

注意:上記の対応状況分類では、必要な対応操作が行われることを前提としています。


  2000年対応状況の開示

マイクロソフトおよび西暦 2000 年問題に関する情報(本書記載の情報の他、西暦 2000 年テスト、評価、対応情況、対応スケジュール、目標、その他に関する、過去、現在および将来の全ての情報を含みますが、これらに限られません。 以下、これらを総称して「マイクロソフト西暦 2000 年ステートメント」といいます。)の送信または伝達は全て、ここに米国の「西暦 2000 年問題に関する情報および対応開示に関する法律」に定義されているところの「西暦 2000 年対応情報開示」として提供されます。 また、かかる情報は、http://www.asia.microsoft.com/japan/year2k/ のマイクロソフトの西暦 2000 年Webサイト(以下「Y2K Webサイト」といいます。)にて参照可能です。 「マイクロソフト西暦 2000 年ステートメント」は、それぞれ、この使用条件、Y2K Webサイト記載の条件並びに「西暦 2000 年問題に関する情報および対応開示に関する法律」の条項に従い、お客様の西暦 2000 年問題に対応するための技術計画を支援させていただく目的でのみ提供されています。 各「マイクロソフト西暦 2000 年ステートメント」には、入手可能な最新情報が含まれますが、それらは逐次更新されます。 従って、マイクロソフトは、お客様が定期的に、Y2K Webサイトを確認して、「マイクロソフト西暦 2000 年ステートメント」の変更を確認されることをお勧めします。 「マイクロソフト西暦 2000 年ステートメント」は、全て、“現状ベース”で提供されるものであり、いかなる保証も伴うものではありません。 従って、マイクロソフトは、商品性の保証および特定目的への適合性を含めて、明示的にも黙示的にもいかなる保証もいたしません。 さらに、マイクロソフトは、いかなる「マイクロソフト西暦 2000 年ステートメント」の使用またはその使用結果についても、その正確性、真実性、信頼性等、いかなる保証もしくは表明も行いません。 マイクロソフトまたはその権限ある代理人による、口頭もしくは書面による一切の情報もしくはアドバイスは、何らの保証を意味するものでもなく、かつ上記の保証の拒絶の範囲を狭めるものではありません。 マイクロソフトおよびその供給者は、いかなる場合においても、「マイクロソフト西暦 2000 年ステートメント」に関連して生じた、直接損害、間接損害、偶発損害、派生損害、事業利益の逸失、懲罰的損害、または特別損害を含むすべての損害について、たとえかかる損害の発生の可能性を知らされていた場合であっても、一切責任を負いません。 派生損害または偶発損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。 各「マイクロソフト西暦 2000 年ステートメント」に含まれる情報は、Y2K Webサイトで参照可能であり、マイクロソフト西暦 2000 年対応状況(YEAR 2000 COMPLIANCE STATEMENT)、マイクロソフトが、その西暦 2000 年製品ガイドにおいて、製品の分類に使用している対応基準に関する説明(DESCRIPTION OF THE CATEGORIES OF COMPLIANCE)およびテスト基準(THE MICROSOFT YEAR 2000 TEST CRITERIA)等、と併せてお読みいただくことを意図して提供されているものです。

マイクロソフトが、西暦 2000 年問題関連の修正版、西暦 2000 年診断ツールまたは修正サービスの提供において、お客様に提供することのある、すべての「マイクロソフト西暦 2000 年ステートメント」は、米国の「西暦 2000 年問題に関する情報及び対応開示に関する法律(112 STAT.2386)」の適用を条件として提供されるものです。 何らかの争いが生じた場合には、かかるステートメントの使用に関するお客様の権利は、お客様との契約書または料金表において、別段の合意がなされていない限り、この法律により制限されます。


  最終更新日 1999 年 7 月 10 日
  ©1999 Microsoft Corporation. All rights reserved. Terms of Use.
本サイトは西暦 2000 年 対応開示 (Year2000 Readiness Disclosure) に該当するものであり、本サイトに含まれている情報は本サイトに記載されている条件および西暦 2000 年問題に関する情報及び対応開示に関する米国の法律 (Year2000 Informationand Readiness Disclosure Act) に基づき提供されるものです。

inserted by FC2 system